package models

import (
	"gorm.io/gorm"
	"time"
	"user-srv/basic/inits"
)

type Face struct {
	Id        int32          `gorm:"column:id;type:int;comment:人脸id;primaryKey;not null;" json:"id"`                                           // 人脸id
	UserId    int32          `gorm:"column:user_id;type:int;comment:用户id;not null;" json:"user_id"`                                            // 用户id
	FaceImg   string         `gorm:"column:face_img;type:varchar(255);comment:人脸图片;not null;" json:"face_img"`                                 // 人脸图片
	CreatedAt time.Time      `gorm:"column:created_at;type:datetime(3);comment:创建时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"` // 创建时间
	UpdatedAt time.Time      `gorm:"column:updated_at;type:datetime(3);comment:修改时间;not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"` // 修改时间
	DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);comment:删除时间;default:NULL;" json:"deleted_at"`                          // 删除时间
}

func (f *Face) TableName() string {
	return "face"
}

func (f *Face) GetFace() error {
	return inits.DB.Model(&f).Where("face_img = ?", f.FaceImg).Limit(1).Find(&f).Error
}
func (f *Face) AddFace() error {
	return inits.DB.Create(&f).Error
}
func (f *Face) GetFaceByUserId() error {
	return inits.DB.Model(&Face{}).
		Where("user_id = ? AND deleted_at IS NULL", f.UserId).
		Limit(1).
		Find(f).Error
}
func (f *Face) UpdateFace() error {
	return inits.DB.Model(f).Updates(map[string]interface{}{
		"face_img":   f.FaceImg,  // 假设只更新图片字段
		"updated_at": time.Now(), // 更新时间戳
	}).Error
}
func (f *Face) DeletedFace() error {
	return inits.DB.Model(f).Delete(&f).Error
}
